home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 7 / Gekikoh Dennoh Club Vol. 7 (Japan).7z / Gekikoh Dennoh Club Vol. 7 (Japan) (Track 01).bin / games / otoko / source.lzh / FuncEnemy / lboss01c.c < prev    next >
C/C++ Source or Header  |  1999-06-14  |  2KB  |  78 lines

  1. /* 1面ボスのカバー */
  2. #include <xsp2lib.h>
  3.  
  4. #include "../otoko.h"
  5. #include "../player.h"
  6. #include "../enemy.h"
  7. #include "../eshot.h"
  8. #include "../effect.h"
  9. #include "../priority.h"
  10. #include "../sound.h"
  11.  
  12. static short EnemyMoveLBoss01C (ENEMY *);
  13. static void EnemyTiniLBoss01C (ENEMY *);
  14.  
  15.  
  16. void EnemyInitLBoss01C (ENEMY * p)
  17. {
  18.     p->vx = 0;
  19.     p->vy = 0;
  20.     p->hit_px = 0;
  21.     p->hit_py = 0;
  22.     p->hit_sx = 0;
  23.     p->hit_sy = 0;
  24.     p->hit_cx = 0;
  25.     p->damage = 0;
  26.     p->flash = 0;
  27.     p->hp = 1000;
  28.     p->pt = obj_lboss01;
  29.     p->work = 0;
  30.     p->func_enemy_move = EnemyMoveLBoss01C;
  31.     p->func_enemy_tini = EnemyTiniLBoss01C;
  32.  
  33.     if (p->arg < 1) {
  34.         p->info = PALET_LBOSS01 | PRIORITY_BOSS_PARTS;
  35.     } else {
  36.         p->arg -= 2;
  37.         p->info = PALET_LBOSS01_1 | PRIORITY_BOSS_PARTS;
  38.     }
  39. }
  40.  
  41.  
  42.  
  43. static short EnemyMoveLBoss01C (ENEMY * p)
  44. {
  45.     /* 速度を足して上位ワード(固定整数部)だけ取り出す */
  46.     p->x = (p->lx += p->vx) >> 16;
  47.     p->y = (p->ly += p->vy) >> 16;
  48.  
  49.     if (SHORT_VY < 2)
  50.         p->vy += 4096;
  51.     switch (p->work++) {
  52.     case 0:
  53.     case 8 + 15 * 1:
  54.     case 8 + 15 * 2:
  55.         EffectInit (EFFECT_EXPL, 0, p->x, p->y);
  56.         SoundSetSE (SE_EXPL);    /* 爆発音を鳴らす */
  57.         break;
  58.     case 8 + 15 * 4:
  59.         EffectInit (EFFECT_EXPL, 0, p->x, p->y);
  60.         SoundSetSE (SE_EXPL_M);    /* 爆発音を鳴らす */
  61.         if (p->arg == 0)
  62.             EffectInit (EFFECT_POINTS_RED, POINTS_3000, p->x, p->y);
  63.         if (disp_level == DISP_LEVEL_HIGH)
  64.             EffectInit (EFFECT_HAHENMINI, 0, p->x, p->y);
  65.         return (-1);    /* 消去 */
  66.         break;
  67.     }
  68.     xobj_set_st (p);
  69.  
  70.  
  71.     return (0);
  72. }
  73.  
  74.  
  75. static void EnemyTiniLBoss01C (ENEMY * p)
  76. {
  77. }
  78.